package com.equipmentRent.system.service.impl;

import java.util.List;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.equipmentRent.system.mapper.ItemMapper;
import com.equipmentRent.system.domain.Item;
import com.equipmentRent.system.service.IItemService;
import com.equipmentRent.common.core.text.Convert;

/**
 * 租赁物品主Service业务层处理
 * 
 * @author zxl
 * @date 2025-05-17
 */
@Service
public class ItemServiceImpl extends ServiceImpl<ItemMapper,Item> implements IItemService

{
    @Autowired
    private ItemMapper itemMapper;

    /**
     * 查询租赁物品主
     * 
     * @param id 租赁物品主主键
     * @return 租赁物品主
     */
    @Override
    public Item selectItemById(Long id)
    {
        return itemMapper.selectItemById(id);
    }

    /**
     * 查询租赁物品主列表
     * 
     * @param item 租赁物品主
     * @return 租赁物品主
     */
    @Override
    public List<Item> selectItemList(Item item)
    {
        return itemMapper.selectItemList(item);
    }

    /**
     * 新增租赁物品主
     * 
     * @param item 租赁物品主
     * @return 结果
     */
    @Override
    public int insertItem(Item item)
    {
        return itemMapper.insertItem(item);
    }

    /**
     * 修改租赁物品主
     * 
     * @param item 租赁物品主
     * @return 结果
     */
    @Override
    public int updateItem(Item item)
    {
        return itemMapper.updateItem(item);
    }

    /**
     * 批量删除租赁物品主
     * 
     * @param ids 需要删除的租赁物品主主键
     * @return 结果
     */
    @Override
    public int deleteItemByIds(String ids)
    {
        return itemMapper.deleteItemByIds(Convert.toStrArray(ids));
    }

    /**
     * 批量软删除租赁物品主
     *
     * @param ids 需要软删除的租赁物品主主键
     * @return 结果
     */
    @Override
    public int softDeleteItemByIds(String ids)
    {
        String[] strArray = Convert.toStrArray(ids);
        int count = 0;
        for (String s : strArray) {
            Item item = itemMapper.selectItemById(Long.valueOf(s));
            int i = itemMapper.update(null, Wrappers.<Item>lambdaUpdate()
                    .set(Item::getIsDelete, 1L)
                    .eq(Item::getId, item.getId()));
            count = count + i;
        }
        return count;
    }

    /**
     * 删除租赁物品主信息
     * 
     * @param id 租赁物品主主键
     * @return 结果
     */
    @Override
    public int deleteItemById(Long id)
    {
        return itemMapper.deleteItemById(id);
    }

    @Override
    public List<Item> selectItemsByIds(List<Long> productIds) {
        return itemMapper.selectItemsByIds(productIds);
    }
}
